package com.Manage;

import java.util.Random;
import java.util.Scanner;

//修改信息：根据学号修改姓名和年龄

public class modifyInformation {
    public  void Modify() {
        //由于后续使用的是split方法，分成的是字符串，这里的姓名也用字符串来定义
        Scanner sc = new Scanner(System.in);
        addStudents.Date();
        String[] Stu = addStudents.getNames();
        System.out.println("=====当前学生列表=====");
        for(int i = 0; i < Stu.length; i++) {
            System.out.println(Stu[i]);
        }
        do{
            System.out.println("\n输入所想修改的学生的学号~(输入exit退出):");
            String targetstuID = sc.next();
            // 退出条件
            if (targetstuID.equalsIgnoreCase("exit")) {
                System.out.println("====修改操作结束====");
                break;
            }
            if (targetstuID.isEmpty()) {
                System.out.println("错误：学号不能为空");
                continue;
            }
            int index = -1;
            for(int i = 0; i < Stu.length; i++) {
                //分隔学生信息
                String[] part = Stu[i].split(":");
                if(part.length < 3) {
                    System.out.println("警告：无效的数据格式");
                    continue;
                }
                // 提取学号部分
                String stuID = part[0];
                if (stuID.equals(targetstuID)) {
                    index = i;
                    break;
                }
            }
                //处理找不到的情况
                if (index == -1) {
                    System.out.println("未查询到此学生的学号");
                    continue;//跳过本次循环
                }

                System.out.println("选择修改内容");
                System.out.println("1.姓名");
                System.out.println("2.年龄");
                System.out.println("请输入你的选择： （1或2）");
                int choice = sc.nextInt();
                // 动态分割当前学生数据
                String[] parts = Stu[index].split(":| ");
                if (parts.length < 4) {
                    System.out.println("错误：数据格式无效");
                    continue;
                }
                switch (choice) {
                    case 1:
                    sc.nextLine();//清除残留换行符
                    System.out.println("请输入新的名字");
                    String targetName = sc.nextLine().trim();
                    parts[1] = targetName;
                    break;
                    case 2:
                    sc.nextLine();
                    System.out.println("请输入新的年龄");
                    String targetAge = sc.nextLine().trim();
                    parts[3] = targetAge;
                    break;
                    default:
                    System.out.println("无效选项");
                    continue;
                }
            Stu[index] = parts[0]+":"+parts[1]+" age:"+parts[3];
            System.out.println("修改成功！当前学生的信息：" + Stu[index]);
        }while (true);
        sc.close();
    }
}
